# coding:utf-8

a = 'hello xiaomu'
print(a, type(a))  # hello xiaomu <class 'str'>

b = b'hello xiaomu'
print(b, type(b))  # b'hello xiaomu' <class 'bytes'>

print(b.capitalize())  # b'Hello xiaomu'
print(b.replace(b'xiaomu', b'dewei'))  # b'hello dewei'
print(b[:3])  # b'hel'
print(b.find(b'x'))

print(dir(b))

"""
str.encode(encoding='utf-8', errors='strict')
返回原字符串编码为字节串对象的版本。 默认编码为 'utf-8'。 可以给出 errors 来设置不同的错误处理方案。 errors 的默认值为 'strict'，
表示编码错误会引发 UnicodeError。 其他可用的值为 'ignore', 'replace', 'xmlcharrefreplace', 'backslashreplace' 以及任何
其他通过 codecs.register_error() 注册的值

bytes.decode(encoding='utf-8', errors='strict')
返回从给定 bytes 解码出来的字符串。 默认编码为 'utf-8'。 可以给出 errors 来设置不同的错误处理方案。 errors 的默认值为 'strict'，
表示编码错误会引发 UnicodeError。 其他可用的值为 'ignore', 'replace' 以及任何其他通过 codecs.register_error() 注册的名称
"""
c = 'hello 小慕'
d = c.encode('utf-8')
print(d, type(d))  # b'hello \xe5\xb0\x8f\xe6\x85\x95' <class 'bytes'>
print(d.decode('utf-8'))  # hello 小慕
